# api_client.py
import requests

class ApiClient:
    """封装了与 Kintone API 交互的客户端"""

    def __init__(self, kintone_config):
        self.kintone_config = kintone_config

    def post_records(self, json):
        """
        向 Kintone API 发送 POST 请求，上传记录
        :param json: 要上传的 JSON 数据
        :return: 响应对象
        """
        try:
            url = self.kintone_config.records_url  # 使用属性访问字典中的值
            headers = self.kintone_config.record_headers  # 使用属性访问字典中的值
            response = requests.post(url, headers=headers, json=json)
            print("response",response.json())
            response.raise_for_status()  # 如果响应码不是 2xx，抛出异常
            return response
        except requests.RequestException as e:  # 捕获requests可能抛出的异常
            print(f'Error in post_records: {e}')
        except Exception as e:  # 捕获其他可能的异常
            print(f'Unexpected error in post_records: {e}')
        return None

    def get_records_all(self):
        """
        向 Kintone API 发送 GET 请求，获取所有记录
        :return: 所有记录列表
        """
        try:
            url = self.kintone_config.url  # 使用属性访问字典中的值
            headers = self.kintone_config.headers  # 使用属性访问字典中的值
            response = requests.get(url, headers=headers, json={'app': self.kintone_config.app_id, "query": self.kintone_config.query})
            response.raise_for_status()  # 如果响应码不是 2xx，抛出异常
            data = response.json()
            records = data.get('records', [])
            return records
        except requests.RequestException as e:  # 捕获requests可能抛出的异常
            print(f'Error in get_records_all: {e}')
        except Exception as e:  # 捕获其他可能的异常
            print(f'Unexpected error in get_records_all: {e}')
        return []
